package cn.jszx.core.dao.user;

import cn.jszx.core.bean.user.User;
import cn.jszx.core.query.user.UserQuery;

import java.util.List;


public interface UserDao {

    /**
     * 添加
     *
     * @param user
     */
    Integer addUser(User user);

    /**
     * 根据主键查找
     *
     * @param id
     *
     */
    User getUserByKey(String id);

    /**
     * 根据主键查找
     *
     * @param username
     */
    User getSimpleUserByUsername(String username);


    /**
     * 根据主键批量查找
     *
     * @param idList
     */
    List<User> getUsersByKeys(List<String> idList);

    /**
     * 根据主键删除
     *
     * @param id
     */
    Integer deleteByKey(String id);

    /**
     * 根据主键批量删除
     *
     * @param idList
     */
    Integer deleteByKeys(List<String> idList);

    /**
     * 根据主键更新
     *
     * @param user
     */
    Integer updateUserByKey(User user);



    /**
     * 集合查询
     *
     * @param userQuery
     */
    List<User> getUserList(UserQuery userQuery);

    /**
     * 总条数
     *
     * @param userQuery
     */
    int getUserListCount(UserQuery userQuery);
}
